パブリックなIPアドレスを経由してEC2インスタンスへSSH接続するポイントをまとめてみた
はじめに
こんにちは!おのやんです。
みなさん、EC2インスタンスにSSH接続したいと思ったことはありませんか?私は何度かあります。
EC2インスタンスの一部のAMIには、SSMエージェントがデフォルトでインストールされています。そのためSSH接続を行わずとも、AWSのマネジメントコンソール上からセッションマネージャー経由でコンソールにアクセスできます。
しかし、SSMエージェントがインストールされていないAMIでEC2インスタンスを立てた場合は、セッションマネージャーは使えません。コンソールへのアクセスやSSMエージェントのインストールのために、EC2インスタンスにアクセスする必要があります。
EC2インスタンスにSSH接続するためには、いくつか確認するべきポイントがあります。今回はこれらのポイントを整理してみましょう。
前提条件
今回構築したEC2インスタンスのOSはRHEL 8.5 x86_6です。
また今回のEC2インスタンスは、構築の関係上従来のSSHクライアントを利用する必要があります。加えてSSH接続する拠点側の都合で、SSH接続先は特定EIPのみ許可されています。そのため、本記事ではElastic IP アドレスを利用しています。
一時的なSSH接続なら、動的付与のパブリックIPアドレスでも問題ありません。今回は紹介の都合上、Elastic IP アドレスを取り上げます。
ポイント1: パブリックなIPアドレスが割り当てられているか
最初に、EC2インスタンスでパブリックなIPアドレスが有効になっているかを確認します。
前述のとおり、EC2インスタンスにアタッチされているパブリックなIPアドレスが必要であるため、今回はElastic IP アドレスを使用します。
EC2のElastic IP アドレスの画面から、「Elastic IP アドレスを割り当てる」を選択します。
今回は、デフォルトの設定のまま割り当てに進みましょう。
作成したElastic IP アドレスを選択して、「アクション」から「Elastic IP アドレスの関連付け」を選択します。
こちらで、接続したいEC2インスタンスを選択して、Elastic IP アドレスを関連付けましょう。
ポイント2: VPCにインターネットゲートウェイがアタッチされているか
EC2インスタンスにSSH接続するということは、インターネット経由でAWS環境にアクセスするということです。
そのため、EC2インスタンスにSSH接続するには、EC2インスタンスが設置されているVPCにインターネットゲートウェイをアタッチする必要があります。
VPCコンソールからインターネットゲートウェイの画面に移動し、「インターネットゲートウェイの作成」を選択します。
今回はtest-igwという名前をつけて作成してみましょう。
作成できたら、VPCにアタッチしましょう。
EC2インスタンスが動いているVPCを選択して「ゲートウェイのアタッチ」を選択したら、アタッチ完了です。
ポイント3: インターネットゲートウェイがルートテーブルに設定されているか
さきほど、VPCにインターネットゲートウェイをアタッチしました。しかし、これだけではEC2はインターネット接続できません。
VPCに関連づけられているルートテーブルにて、0.0.0.0/0宛ての通信をインターネットゲートウェイに向ける必要があります。
さきほどインターネットゲートウェイをVPCにアタッチしましたので、ルートテーブルのターゲットとして選択できます。
このように、ルートが選択できていればOKです。
ポイント4: セキュリティグループのインバウンドルールに接続元のIPアドレスが追加できているか
最後のポイントとして、EC2インスタンスのセキュリティグループを確認しましょう。
ここで接続元となる自分のPCのIPアドレスを指定します。
プロトコルは「カスタムTCP」、ポート番号は「22」、ソースは「マイIP」で大丈夫です。
SSH接続やってみた
それではSSH接続をやってみましょう。なお、今回はEC2インスタンス作成時にキーペアを作成してあるものとします。
EC2インスタンスの詳細画面に移ると、「接続」のボタンがありますので、こちらをクリックしましょう。
すると、SSH接続のコマンドが表示されると思います。
手元のPCなどのSSHクラウアント上で、SSHのシークレットキーがあるディレクトリまで移動します。そして、こちらのコマンドを実行します。
実際にSSH接続でコンソールに入ることができました!
さいごに
セッションマネージャーの登場により、EC2インスタンスへのSSH接続の機会は減ってきました。しかし、セッションマネージャーのエージェントのインストールなど、要所要所でSSH接続が必要な場合もあります。
SSH接続には他にもいろいろなやり方があるため、状況に応じて複数の接続方法を整理しておくといいですね。では!